home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS15.ADF / AmigaBasicProgs / Money < prev    next >
Text File  |  1988-04-20  |  6KB  |  368 lines

  1. REM  MONEYBAGS by Becky F. Matthews
  2. REM  This is a freely-distributable PUBLIC DOMAIN program.
  3.  
  4. DEFINT a-z
  5. DEFLNG k
  6. DEFLNG score
  7. DIM mon(90)
  8. DIM tax(90)
  9. DIM sc(500)
  10. sx=0:cx=140:k=TIMER:score=0:c$="":level=1
  11. SAY ""
  12. RANDOMIZE TIMER
  13. SCREEN 1, 320, 200, 2, 1
  14. WINDOW 2,"",(0,0)-(311,185),20,1
  15. WINDOW 1,"Government Invasion Part I",(0,0)-(311,185),20,1
  16. PALETTE 0,0,0,0
  17. PALETTE 1,1,1,1
  18. PALETTE 2,1,1,.13
  19. PALETTE 3,1,0,0
  20. CLS
  21. c$="put joystick, in port 2"
  22. b$=" Put Joystick in Port 2."
  23. GOSUB printsay  
  24. GOSUB gamescreen
  25. GOSUB objects
  26. main:
  27. GOSUB moneystart
  28. GOSUB starpage
  29. GOSUB moneypage
  30. GOSUB noise
  31. GOSUB move
  32. GOSUB taxstart
  33. GOSUB starpage
  34. GOSUB taxpage
  35. GOSUB noise
  36. GOSUB move
  37. GOSUB bothstart
  38. GOSUB starpage
  39. GOSUB bothpage
  40. GOSUB noise
  41. GOSUB move
  42. IF level = 4 THEN GOTO win
  43. level = level + 1
  44. b$=" Level "+STR$(level)
  45. GOSUB printsay
  46. LOCATE 13,31
  47. PRINT "Level";level
  48. GOTO main
  49.  
  50. gamescreen:
  51. c=1
  52. FOR x = 1 TO 29 STEP 2
  53. LINE(70+x,20+x)-(220-x,160-x),c,b
  54. c=c+1:IF c > 3 THEN c = 1
  55. SOUND x*100,.1
  56. NEXT 
  57. FOR t = 1 TO 30
  58. x=INT(RND*90)+100
  59. y=INT(RND*80)+50
  60. PSET(x,y),1
  61. NEXT 
  62. COLOR 2,3
  63. LOCATE 10,30
  64. PRINT "MONEYBAGS"
  65. COLOR 2,0
  66. LOCATE 13,31
  67. PRINT "Level";level
  68. SOUND 300,1
  69. RETURN
  70.  
  71. objects:
  72. WINDOW OUTPUT 2
  73. DIM bags$(130)
  74. RESTORE bagsdata
  75. FOR n = 1 TO 130
  76. READ a
  77. bags$ = bags$ + CHR$(a)
  78. NEXT 
  79. OBJECT.SHAPE 1,bags$
  80. OBJECT.X 1,10
  81. OBJECT.Y 1,10
  82. OBJECT.ON 1
  83. GET(10,10)-(40,30),mon
  84. OBJECT.CLOSE 1
  85. DIM taxman$(130)
  86. RESTORE taxmandata
  87. FOR n = 1 TO 130
  88. READ a
  89. taxman$ = taxman$ + CHR$(a)
  90. NEXT 
  91. OBJECT.SHAPE 2,taxman$
  92. OBJECT.X 2,10
  93. OBJECT.Y 2,10
  94. OBJECT.ON 2
  95. GET(10,10)-(30,30),tax
  96. OBJECT.CLOSE 2
  97. WINDOW 1
  98. DIM sight$(60)
  99. RESTORE sightdata
  100. FOR n = 1 TO 60
  101. READ a
  102. sight$ = sight$ + CHR$(a)
  103. NEXT 
  104. OBJECT.SHAPE 3,sight$
  105. OBJECT.X 3,140
  106. OBJECT.Y 3,134
  107. OBJECT.ON 3
  108. RETURN
  109.  
  110. moneystart:
  111. c$="grab all the bags of money that you can"
  112. b$=" Grab Money."
  113. GOSUB printsay
  114. RETURN
  115.  
  116. taxstart:
  117. c$="now you will try to uhvoid the tax collectors"
  118. b$=" Avoid Tax Collectors."
  119. GOSUB printsay
  120. RETURN
  121.  
  122. bothstart:
  123. c$="Now grab the money bags and uhvoid the tax collectors"
  124. b$=" Grab Money Not Taxmen."
  125. GOSUB printsay
  126. RETURN
  127.  
  128. move:
  129. FOR t = 1 TO 2
  130. FOR x = 10 TO 260 STEP 90
  131. FOR y = 105 TO 1 STEP -3
  132. WINDOW OUTPUT 2
  133. GET(x,y)-(90+x,y+80),sc
  134. WINDOW OUTPUT 1
  135. PUT(100,50),sc,PSET 
  136. SOUND y*5+300,.1
  137. GOSUB joystick
  138. NEXT 
  139. FOR y = 1 TO 41
  140. GET(100,51)-(190,127),sc
  141. PUT(100,54),sc,PSET
  142. LINE(100,50)-(190,53),0,bf
  143. SOUND y*5+300,.1
  144. GOSUB joystick
  145. NEXT 
  146. NEXT 
  147. NEXT 
  148. RETURN
  149.  
  150. starpage:
  151. WINDOW OUTPUT 2
  152. CLS
  153. FOR star = 1 TO 100
  154. x=INT(RND*311):y=INT(RND*185)
  155. PSET(x,y),1
  156. NEXT 
  157. RETURN
  158.  
  159. moneypage:
  160. s=0
  161. FOR n = 1 TO 3
  162. FOR t = 1 TO 11
  163. x=t*30+10
  164. y=INT(RND*8)*20+10
  165. PUT(x-30,y),mon,PSET
  166. NEXT 
  167. NEXT 
  168. RETURN
  169.  
  170. taxpage:
  171. s=level-1
  172. FOR t = 1 TO 11
  173. x=t*23+10
  174. FOR n = 1 TO (0+level)
  175. y=INT(RND*7)*25+10
  176. PUT(x-23,y),tax,PSET
  177. NEXT 
  178. NEXT 
  179. RETURN
  180.  
  181. bothpage:
  182. s=level
  183. FOR t = 1 TO 11 
  184. x=t*30+10
  185. FOR n = 1 TO (3+level)
  186. y=INT(RND*7)*25+10
  187. b=INT(RND*100)
  188. IF b > 40 THEN 
  189.  PUT(x-30,y),tax,PSET
  190. ELSE 
  191.  PUT(x,y),mon,PSET
  192. END IF
  193. NEXT 
  194. NEXT 
  195. RETURN
  196.  
  197. printsay: 
  198. IF c$="" THEN c$=b$
  199. r$=TRANSLATE$(c$)
  200. SAY(r$)
  201. FOR x=1 TO 39
  202. LOCATE 2,x
  203. SOUND x*50,.1
  204. PRINT LEFT$(b$,40-x)
  205. NEXT 
  206. c$=""
  207. RETURN
  208.  
  209. noise:
  210. FOR n=1 TO 5
  211. FOR p=800 TO 200 STEP -50
  212. SOUND p,.2
  213. NEXT 
  214. NEXT 
  215. RETURN
  216.  
  217.  
  218. joystick:
  219. IF STICK(2)=1 THEN GOSUB right
  220. IF STICK(2)=-1 THEN GOSUB left
  221. IF STICK(2)=0 AND sx=1 THEN GOSUB right
  222. IF STICK(2)=0 AND sx=2 THEN GOSUB left
  223. p = POINT(cx+3,125)
  224. IF TIMER>k+.5 THEN
  225.  IF p = 3 OR p = 2 THEN GOSUB score
  226. END IF
  227. RETURN
  228.  
  229. right:
  230. p = POINT(cx+3,125)
  231. IF TIMER>k+.5 THEN
  232.  IF p = 3 OR p = 2 THEN GOSUB score
  233. END IF
  234. cx=cx+4
  235. IF cx>182 THEN cx=182
  236. IF cx<103 THEN cx=103
  237. OBJECT.X 3,cx
  238. sx=1
  239. RETURN
  240.  
  241. left:
  242. p=POINT(cx+3,125)
  243. IF TIMER>k+.5 THEN
  244.  IF p = 3 OR p = 2 THEN GOSUB score
  245. END IF
  246. cx=cx-4
  247. IF cx<103 THEN cx=103
  248. IF cx>182 THEN cx=182
  249. OBJECT.X 3,cx
  250. sx=2
  251. RETURN
  252.  
  253. score:
  254. CIRCLE(cx+3,125),4,1
  255. LOCATE 22,12
  256. IF p = 2 THEN score = score + 1:SOUND 900,1
  257. IF p = 3 THEN score = score - 5:SOUND 500,1
  258. PRINT "MONEY = $";score*100;
  259. IF score < 0 AND s>0 THEN
  260.  RETURN jail
  261. ELSEIF score <0 THEN 
  262.  RETURN restart
  263. END IF
  264. k=TIMER
  265. RETURN
  266.  
  267. restart:
  268. c$="You lost all your money too soon.  Try again"
  269. b$=" Try Again."
  270. IF s=0 THEN GOSUB printsay
  271. sx=0:cx=140:k=TIMER:score=0:c$="":level=1
  272. CLS
  273. OBJECT.X 3,cx
  274. GOSUB gamescreen
  275. GOTO main
  276.  
  277. jail:
  278. FOR t = 1 TO 2
  279. FOR n = 400 TO 100 STEP - 25
  280. SOUND n,1
  281. NEXT 
  282. NEXT 
  283. c$="You are broke. out of money and you owe the tax collector"
  284. b$=" You're broke."
  285. GOSUB printsay
  286. b$=" Naughty naughty naughty."
  287. GOSUB printsay
  288. c$="The tax collector gets your howse and your car and all your worldly goodies"
  289. b$=" Goodbye, goodies."
  290. GOSUB printsay
  291. c$="Now you must go to jail"
  292. b$=" Go To Jail!"
  293. GOSUB printsay
  294. FOR x = 10 TO 300 STEP 35
  295. LINE(x,0)-(x+10,185),1,bf
  296. NEXT 
  297.  
  298. gameover:
  299. LOCATE 2,10
  300. PRINT "Press Y to Play Again"
  301. a$=""
  302. WHILE a$=""
  303. a$= INKEY$
  304. WEND
  305. IF UCASE$(a$)="Y" THEN GOTO restart
  306. END
  307.  
  308. win:
  309. CLS
  310. c=1
  311. FOR x = 1 TO 80 STEP 2
  312. LINE(x,x)-(311-x,185-x),c,b
  313. c=c+1:IF c>3 THEN c=1
  314. SOUND x*80,.5
  315. NEXT 
  316. LOCATE 12,16
  317. PRINT "You Win!!"
  318. GOTO gameover
  319.  
  320. bagsdata:
  321. DATA   0,  0,  0,  0,  0,  0,  0,  0
  322. DATA   0,  0,  0,  2,  0,  0,  0, 24
  323. DATA   0,  0,  0, 13,  0, 24,  0,  3
  324. DATA   0,  0,  0,  0,  0,  0,  0,  0
  325. DATA   0,  0,  0,  0,  0,  0,  0,  0
  326. DATA   0,  0,  0,  0,  0,  0,  0,  0
  327. DATA   0,  0,  0,  0,  0,  0,  0,  0
  328. DATA   0,  0,  0,  0,  0,  0,  0,  0
  329. DATA   0,  0,  0,  0,  0,  0,  0,  0
  330. DATA   0,  0,  0,  0,  0,  0,  0,  0
  331. DATA   0,  0,  3,  7,192,  0,  1,252
  332. DATA  64,  0,  0,120,  0,  0,  3,207
  333. DATA   0,  0,  6,  1,128,  0, 14, 79
  334. DATA 192,  0, 14,  1,192,  0, 15,201
  335. DATA 192,  0,  6,  1,128,  0,  3,207
  336. DATA   0,  0,  0,252,  0,  0,  0,  0
  337. DATA   0,  0
  338.  
  339. taxmandata:
  340. DATA   0,  0,  0,  0,  0,  0,  0,  0
  341. DATA   0,  0,  0,  2,  0,  0,  0, 24
  342. DATA   0,  0,  0, 13,  0, 24,  0,  3
  343. DATA   0,  0,  0,252,  0,  0,  0,104
  344. DATA   0,  0,  0, 48,  0,  0,  7,223
  345. DATA   0,  0, 14,219,128,  0, 14,219
  346. DATA 128,  0, 14,221,128,  0, 12,253
  347. DATA 128,  0, 13,255,128,  0,  1,206
  348. DATA   0,  0,  1,206,  0,  0,  1,206
  349. DATA   0,  0,  7,207,128,  0,  0,204
  350. DATA   0,  0,  0,  0,  0,  0,  0,  0
  351. DATA   0,  0,  7,223,  0,  0, 14,219
  352. DATA 128,  0, 14,219,128,  0, 14,221
  353. DATA 128,  0, 12,253,128,  0,  1,254
  354. DATA   0,  0,  1,206,  0,  0,  1,206
  355. DATA   0,  0,  1,206,  0,  0,  7,207
  356. DATA 128,128
  357.  
  358. sightdata:
  359. DATA   0,  0,  0,  0,  0,  0,  0,  0
  360. DATA   0,  0,  0,  2,  0,  0,  0, 16
  361. DATA   0,  0,  0,  7,  0, 25,  0,  3
  362. DATA   0,  0,  2,  0,  5,  0,  8,128
  363. DATA   5,  0,  2,  0,  0,  0,  0,  0
  364. DATA   0,  0,  0,  0,  0,  0,  0,  0
  365. DATA   0,  0,  0,  0,  0,  0,  0,255
  366. DATA   0,  0,  0,  0
  367.  
  368.